const Base = require('../base.js');

module.exports = class extends Base {

  async indexAction () {
    let data = this.post()
    // 1.判断是否存在管理员 存在跳转到后台
    let admin_user = await this.model('admin/index').get()
    if (admin_user) {
      return this.fail(-1, '管理员已存在')
    }

    // 2.手机号是否符合要求
    if(!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(data.phone))){ 
      return this.fail(-1, '手机号格式不正确') 
    } 
    
    // 3.判断是否获取验证码
    let sms_code = await this.session('sms_code')

    if (!sms_code) {
      return this.fail(-1, '请先获取验证码')
    }
    // 4.判断验证码是否过期
    if (sms_code.time < Date.now()) {
      return this.fail(-1, '验证码已失效')
    }
    // 5.判断验证码 手机号是否正确
    if (data.phone != sms_code.phone || data.code != sms_code.code) {
      return this.fail(-1, '验证码不正确')
    }
    // 6.判断两次密码是否一致
    if (data.password != data.password2) {
      return this.fail(-1, '两次密码不一致')
    }
    // 7.数据验证完成 写入数据库
    try {
      let result = await this.model('admin/index').create(data)
      let userInfo = {
        nickname: data.nickname,
        phone: data.phone
      }
      let token = await this.session('admin_login', userInfo)
      userInfo.token = token
      this.json({
        status: 200, message: 'success', data: userInfo
      })
    } catch (err) {
      this.fail(-1, err.message)
    }
  }
};
